test: formalize classic S7 real PLC acceptance testing - #892
gijzelaerr wants to merge 2 commits into
Conversation
|
@russwing Could you run the cross-model real-PLC acceptance pass for the S7CommPlus work once its code review settles? Your S7-1200 and S7-1500 access makes that the useful compatibility pair. Suggested order: the response/authentication roots (#881, #882, #883, #887), then stacked integrity/renewal (#884, #888), followed by typed tags/subscriptions (#886, #891). Please use the result template in this PR and record the exact CPU, firmware, protection mode, and tested commit. #881 still has an unresolved S7-1511C item-read failure from the latest reporter retest, so a failure there would also be valuable evidence. |
|
Ran the harness today on both CPUs of the compatibility pair. One blocking defect in the S7CommPlus adapter, and a preparation gap of ours. Commit The blocker: the S7CommPlus adapter never enables TLS
self.client.connect(self.config.host, self.config.port, self.config.rack, self.config.slot)
Controlled proof — same CPU, same commit, same port, only Suggested fix: a Results as they stand
The other four scenarios fail on both CPUs for a reason that is ours, not yours: neither PLC carries the DB1/DB2 fixture from So this is a partial, and I would rather report it now than sit on the TLS finding. One note on hardware scope#881's outstanding item-read failure is on an S7-1511C. Ours is a 1511F — same S7-1500 family, different model and a safety variant. Whatever we produce is useful compatibility evidence but will neither confirm nor clear that specific report. I will file the formal |
|
Fixture DBs are now in place on both CPUs, so here is the full pass. Two defects, one of them substantial, plus confirmation that the TLS fix works. Harness Results
1. The TLS fix works — confirmedPatching 2.
|
|
The S7CommPlus portion has now moved to the standalone repository in gijzelaerr/s7commplus#30; this PR remains the Classic S7 acceptance work. That port addresses both findings from the hardware pass:
The standalone PR merged with all hosted checks green (805 passed, 43 hardware-gated skips locally, plus typing, lint/format, docs, package/Twine, lock, and pre-commit checks). I have deliberately not treated unit/emulator coverage as proof on hardware. The next useful step is to rerun S7CommPlus master on the same 1212C V4.7.3 and 1511F V2.9.7, first smoke and then |
Progresses #840.
Adds a pytest-bdd-based real-PLC acceptance program with 13 versioned scenarios covering connection, canonical reads, multi-read, reconnect behavior, and safely restored scratch writes using the classic S7 protocol.
Safety and evidence:
Local verification:
uv run --no-sync pre-commit run --all-filesuv run --no-sync pytest(1385 passed, 63 skipped)uv build --offlineuv run --no-sync sphinx-build -N -W -b html doc ...The final acceptance item—filing a real-hardware result—requires a volunteer PLC run after this infrastructure lands, so this PR intentionally does not close #840.